package com.jy.wms.common;

import net.sf.json.JSONObject;

public class SetStatus<T> {

    /**
     *功能型接口数据返回
     * @param messageType  对应 3种 弹出层
     *     1.右上角(提示级别2 例如 用户通过手动输入正确的 用户名密码 登录成功)
     *     2.上边(提示级别3 例如 用户自动登录成功...)
     *     3.alert(提示级别1 一般是服务器严重错误才提示这样的  预留 不推荐  主要是还没做对应响应式)
     * @param type    (非必须)  主题类型：成功 失败
     *   success：成功  不是成功 都是失败
     *   warning：警告
     *   info：信息
     *   error：错误
     * @param title   (非必须) 标题
     * 如果 messageType 为 1 此处必须
     * 如果 messageType 为 2 此处非必须  写了也不显示
     * 如果 messageType 为 3 此处必须
     * @param message (必须) 内容
     * @return
     */
    public static JSONObject setFunctionType (Integer messageType, String type, String title, String message, String value){
        JSONObject params = new JSONObject();
        params.put("messageType", messageType);
        params.put("type", type);
        params.put("title", title);
        params.put("message", message);
        params.put("data", value);
        return params;
    }

    /**
     *查询型接口数据返回
     * @param contentList  数据集 必须
     * @param totals    总条数 必须
     * @return
     */
    public static JSONObject setSearchType (String contentList, Integer totals){
        JSONObject params = new JSONObject();
        params.put("rows", contentList);
        params.put("total", totals);
        return params;
    }

    /**
     * 根据增删改service的返回值返回信息
     * @param flag  增删改返回的状态
     * @param success 是否出现异常，无异常true，有异false
     * @param messageType  对应 3种 弹出层
     *     1.右上角(提示级别2 例如 用户通过手动输入正确的 用户名密码 登录成功)
     *     2.上边(提示级别3 例如 用户自动登录成功...)
     *     3.alert(提示级别1 一般是服务器严重错误才提示这样的  预留 不推荐  主要是还没做对应响应式)
     * @param title   (非必须) 标题
     * 如果 messageType 为 1 此处必须
     * 如果 messageType 为 2 此处非必须  写了也不显示
     * 如果 messageType 为 3 此处必须
     * @param message (必须) 内容不需要写上成功/失败
     * @param value   只有在新增的时候要返回新增的对象的时候加入
     * @return
     */
    public static JSONObject setReturn(Integer flag, boolean success, Integer messageType, String title, String message, String value){
        JSONObject params = new JSONObject();
        if(success){
            if(flag == 0){
                params = SetStatus.setFunctionType(messageType,"warning",title,message+"失败",value);
            }else{
                params = SetStatus.setFunctionType(messageType,"success",title,message+"成功",value);
            }
        }else{
            params = SetStatus.setFunctionType(messageType,"error",title,message+"失败",value);
        }

        return params;
    }
}
